package com.jiuli_travel.utils;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;

import java.util.List;

/**
 *  对分页查询的响应数据进行处理
 */
@Data
public class PageDTO<T>{

    /**
     * 搜索的总条数
     */
    private Long total;

    /**
     * 搜索的记录数
     */
    private List<T> records;

    /**
     * 一共有多少页
     */
    private Long pages;

    /**
     * 每一页的记录数
     */
    private Long size;

    /**
     * 当前页
     */
    private Long current;

    /**
     * 排序字段
     */
    private List<OrderItem> orders;


    public static <H, T> PageDTO<T> of (Page<H> page, Class<H> h, Class<T> t){
        PageDTO<T> pageDTO = new PageDTO<>();
        //拷贝属性
        BeanUtil.copyProperties(page, pageDTO);
        //拷贝页码数
        pageDTO.setPages(page.getPages());
        //拷贝记录
        pageDTO.setRecords(BeanUtil.copyToList(page.getRecords(), t));
        return pageDTO;
    }
}



























